package com.it.entity.user;

import cn.afterturn.easypoi.excel.annotation.Excel;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * <p>
 * 公司工作人员信息表（含职位信息，供业务表关联）
 * </p>
 *
 * @author lutao
 * @since 2025年09月17日
 */
@Getter
@Setter
@Accessors(chain = true)
@TableName("ai_staff_user")
public class AiStaffUser implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键自增
     */
    @TableId(value = "staff_id", type = IdType.AUTO)
    private Integer staffId;

    /**
     * 工号（公司内部唯一标识，如YG2024001）
     */
    @Excel(name = "工号" ,width = 15)
    @TableField("work_no")
    private String workNo;

    /**
     * 真实姓名
     */
    @Excel(name = "真实姓名" ,width = 10)
    @TableField("real_name")
    private String realName;

    /**
     * 职位（如：调度员、查勘员、报案受理员、核赔员、管理员）
     */
    @TableField("position_code")
    private String positionCode;

    @Excel(name = "职位名称" ,width = 15)
    @TableField(exist = false)
    private String positionName;

    /**
     * 所属部门（如：理赔部、查勘部、承保部）
     */
    @Excel(name = "所属部门" ,width = 15)
    @TableField(exist = false)
    private String deptName;

    /**
     * 工作联系电话
     */
    @Excel(name = "工作联系电话" ,width =20)
    @TableField("phone")
    private String phone;

    /**
     * 工作邮箱
     */
    @Excel(name = "工作邮箱" ,width = 30)
    @TableField("email")
    private String email;

    /**
     * 在职状态（1-在职，2-离职，3-休假）
     */
    @Excel(name = "在职状态" ,width = 10,replace = {"在职_1","离职_2","休假_3"})
    @TableField("status")
    private Integer status;

    /**
     * 入职时间
     */
    @Excel(name = "入职时间" ,width = 20)
    @TableField("entry_time")
    private LocalDate entryTime;

    /**
     * 信息创建时间
     */
    @TableField("create_time")
    private LocalDateTime createTime;

    /**
     * 信息更新时间
     */
    @TableField("update_time")
    private LocalDateTime updateTime;

}
